import { message } from 'element-ui'
export const requestEvent = {
  onStatusError(error, statusCode, msg) {
    console.error('请求错误', error, statusCode, msg)
    let errMessage = msg
    switch (statusCode) {
      case 401:
        // todo 401情况下是否存在路由跳转
        errMessage = '请先登录！'
        window.parent.location = 'http://192.168.5.13/platform-manager/#/login'
        break
      case 403:
        errMessage = '用户得到授权，但是访问是被禁止的！'
        break
      // 404请求不存在
      case 404:
        // todo 404情况下是否存在路由跳转
        errMessage = '网络请求错误,未找到该资源!'
        // push("/error/404");
        break
      case 405:
        errMessage = '网络请求错误,请求方法未允许!'
        break
      case 408:
        errMessage = '网络请求超时!'
        // push("/error/404");
        break
      case 500:
        errMessage = '服务器错误,请联系管理员!'
        break
      case 501:
        errMessage = '网络未实现!'
        break
      case 502:
        errMessage = '网络错误!'
        break
      case 503:
        errMessage = '服务不可用，服务器暂时过载或维护!'
        break
      case 504:
        errMessage = '网络超时!'
        break
      case 505:
        errMessage = 'http版本不支持该请求!'
        break
      default:
    }
    if (errMessage) {
      message.error(errMessage)
    }
    // 传递给父页面
    window.parent.postMessage({ statusCode, errMessage }, '*')
  },
  /**
   * 请求超时错误
   */
  onTimeoutError(error, defaultMessage) {
    console.error('接口请求超时', defaultMessage, error)
    console.log('接口请求超时,请刷新页面重试!')
  },

  /**
   * 网络错误
   */
  onNetworkError(error, defaultMessage) {
    console.error('接口网络错误', defaultMessage, error)
    console.log('网络异常，请检查您的网络连接是否正常!')
  },
  /**
   * 请求结果感知，可以全局拦截到请求结果，进行预处理
   */
  webResultAware(result, url) {
    if (result && !result.success) {
      console.log(
        '%c %s %c %s %c %s',
        'border-radius: 5px;padding: 3px 4px;color: white;background-color: #0070d9;margin-right:5px',
        '接口响应',
        'border-radius: 5px;padding: 3px 4px;color: #f76832;background-color: #fff;margin-right:5px;border: 1px solid #ef4a09',
        url,
        'border-radius: 5px;padding: 3px 4px;color: white;background-color: #f76832;margin-right:5px',
        '失败:',
        result.message,
      )
      console.log(result.message)
      return
    }
    console.log(
      '%c %s %c %s %c %s',
      'border-radius: 5px;padding: 3px 4px;color: white;background-color: #0070d9;margin-right:5px',
      '接口响应',
      'border-radius: 5px;padding: 3px 4px;color: #0dbc5c;background-color: #fff;margin-right:5px; border: 1px solid #0dd068',
      url,
      'border-radius: 5px;padding: 3px 4px;color: white;background-color: #0dd068;margin-right:5px',
      '成功:',
      result.data,
    )
  },
  /**
   * 响应token感知，如果响应存在token，则会进行感知
   */
  authorizationTokenAware(token) {
    console.log('token:', token)
    // HttpClientUtils.refreshToken(token)
  },

  /**
   * 注入token，在每个请求发送时会调用此事件获取token
   */
  authorizationTokenInfuse() {
    return ''
  },
  // requestConfig: HttpClientInternalRequestConfig
  rsaPublicKeyInfuse() {
    return ''
    //return 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDBvd+mFjGCI7rCjWO5DbcnoAdx3VEMg79EbmJeXF1BV0fRxJlHTtWFVO6/WtQhbATq0gSomAu0SKP64M3CSNgqCIl0fzn4Sk33zwy+ilu3lVrMTUDwKUpR0cy/pzeGVgCdjoDc9hLWyrUw2Qw63I0x97Suz111J9XoT5bLs7Vw3wIDAQAB'
  },
}
